package com.mdd.admin.service.jiaz;

import com.mdd.admin.validate.commons.PageValidate;
import com.mdd.common.core.PageResult;
import com.mdd.common.validate.engineer.EngineerLevelCreateValidate;
import com.mdd.common.validate.engineer.EngineerLevelListedVo;
import com.mdd.common.validate.engineer.EngineerLevelUpdateValidate;
import com.mdd.common.vo.engineer.EngineerLevelDetailVo;
import com.mdd.common.vo.engineer.EngineerLevelSelectListVo;

import java.util.List;

/**
 * 师傅等级服务接口类
 */
public interface IEngineerLevelService {

    /**
     * 等级列表
     *
     * @param pageValidate PageValidate
     * @return PageResult<EngineerLevelListedVo>
     * @author lrc
     */
    PageResult<EngineerLevelListedVo> list(PageValidate pageValidate);

    /**
     * 等级新增
     *
     * @param createValidate EngineerLevelCreateValidate
     * @author lrc
     */
    void add(EngineerLevelCreateValidate createValidate);

    /**
     * 等级编辑
     *
     * @param updateValidate EngineerLevelUpdateValidate
     * @author lrc
     */
    void edit(EngineerLevelUpdateValidate updateValidate);

    /**
     * 等级详情
     *
     * @param id Integer
     * @return EngineerLevelDetailVo
     * @author lrc
     */
    EngineerLevelDetailVo detail(Integer id);

    /**
     * 等级删除
     *
     * @param id Integer
     * @author lrc
     */
    void delete(Integer id);

    /**
     * 等级列表
     *
     * @return List<EngineerLevelSelectListVo>
     * @author lrc
     */
    List<EngineerLevelSelectListVo> selectList();

}
